{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# k-Nearest Neighbor with Grid Search\n",
    "KNN classifier is trained on feature set 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Stored variables and their in-db values:\n",
      "X_16_val                  -> array([[ 3.00880939,  0.26443017,  1.05370334, ...\n",
      "X_32_val                  -> array([[-0.13964146,  0.53184264, -0.71694033, ...\n",
      "X_32test_std              -> defaultdict(<class 'list'>, {0: array([[-0.1396414\n",
      "X_32train_std             -> array([[-0.80277066, -0.49489511, -0.83240094, ...\n",
      "X_test                    -> defaultdict(<class 'list'>, {0: array([[[-0.006215\n",
      "X_test_std                -> defaultdict(<class 'list'>, {0: array([[ 3.0088093\n",
      "X_train                   -> array([[[-0.01174874, -0.00817356, -0.0042913 , ..\n",
      "X_train_std               -> array([[-0.80277066, -0.49489511, -0.83240094, ...\n",
      "snrs                      -> [-20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, \n",
      "y_16_val                  -> array([3, 5, 1, ..., 2, 4, 0])\n",
      "y_32_test                 -> defaultdict(<class 'list'>, {0: array([2, 2, 3, ..\n",
      "y_32_train                -> array([5, 0, 2, ..., 4, 6, 6])\n",
      "y_32_val                  -> array([2, 2, 3, ..., 0, 3, 5])\n",
      "y_test                    -> defaultdict(<class 'list'>, {0: array([3, 5, 1, ..\n",
      "y_train                   -> array([5, 0, 2, ..., 4, 6, 6])\n"
     ]
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "import numpy as np\n",
    "from collections import defaultdict\n",
    "from time import time\n",
    "import pickle  \n",
    "import sklearn\n",
    "from sklearn import metrics\n",
    "\n",
    "%store -r\n",
    "%store"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training data:  (80000, 32) and labels:  (80000,)\n",
      " \n",
      "Test data:\n",
      "Total 20 (4000, 32) arrays for SNR values:\n",
      "[-20, -18, -16, -14, -12, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18]\n"
     ]
    }
   ],
   "source": [
    "print(\"Training data: \", X_32train_std.shape, \"and labels: \", y_32_train.shape)\n",
    "print(\" \")\n",
    "print(\"Test data:\")\n",
    "print(\"Total\", len(X_32test_std), X_32test_std[18].shape, \"arrays for SNR values:\")\n",
    "print(sorted(X_32test_std.keys()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train and test the classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 3 folds for each of 6 candidates, totalling 18 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=1)]: Done  18 out of  18 | elapsed: 44.2min finished\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Grid search took 44.00 minutes \n",
      "   \n",
      "Result of grid search, best estimator:\n",
      "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
      "           metric_params=None, n_jobs=1, n_neighbors=20, p=2,\n",
      "           weights='distance')\n"
     ]
    }
   ],
   "source": [
    "#Train the classifier\n",
    "\n",
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "\n",
    "params = {'n_neighbors': [18,19,20], 'weights':['uniform','distance']}\n",
    "\n",
    "grid_search_cv = GridSearchCV(KNeighborsClassifier(algorithm='auto'), params, verbose=1)\n",
    "\n",
    "start = time()\n",
    "grid_search_cv.fit(X_train_std, y_train)\n",
    "print(\"Grid search took %.2f minutes \"%((time() - start)//60))\n",
    "print(\"   \")\n",
    "print(\"Result of grid search, best estimator:\")\n",
    "print(grid_search_cv.best_estimator_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*Test the classifier\n",
      "   \n",
      "k-Nearest Neighbor's Accuracy on -20 dB SNR samples =  0.12175\n",
      "k-Nearest Neighbor's Accuracy on -18 dB SNR samples =  0.11875\n",
      "k-Nearest Neighbor's Accuracy on -16 dB SNR samples =  0.1285\n",
      "k-Nearest Neighbor's Accuracy on -14 dB SNR samples =  0.1255\n",
      "k-Nearest Neighbor's Accuracy on -12 dB SNR samples =  0.13875\n",
      "k-Nearest Neighbor's Accuracy on -10 dB SNR samples =  0.154\n",
      "k-Nearest Neighbor's Accuracy on -8 dB SNR samples =  0.21225\n",
      "k-Nearest Neighbor's Accuracy on -6 dB SNR samples =  0.2885\n",
      "k-Nearest Neighbor's Accuracy on -4 dB SNR samples =  0.344\n",
      "k-Nearest Neighbor's Accuracy on -2 dB SNR samples =  0.36025\n",
      "k-Nearest Neighbor's Accuracy on 0 dB SNR samples =  0.453\n",
      "k-Nearest Neighbor's Accuracy on 2 dB SNR samples =  0.5775\n",
      "k-Nearest Neighbor's Accuracy on 4 dB SNR samples =  0.63825\n",
      "k-Nearest Neighbor's Accuracy on 6 dB SNR samples =  0.644\n",
      "k-Nearest Neighbor's Accuracy on 8 dB SNR samples =  0.639\n",
      "k-Nearest Neighbor's Accuracy on 10 dB SNR samples =  0.651\n",
      "k-Nearest Neighbor's Accuracy on 12 dB SNR samples =  0.643\n",
      "k-Nearest Neighbor's Accuracy on 14 dB SNR samples =  0.648\n",
      "k-Nearest Neighbor's Accuracy on 16 dB SNR samples =  0.647\n",
      "k-Nearest Neighbor's Accuracy on 18 dB SNR samples =  0.65125\n"
     ]
    }
   ],
   "source": [
    "#Test the classifier\n",
    "\n",
    "import collections\n",
    "\n",
    "y_pred = defaultdict(list)\n",
    "accuracy = defaultdict(list)\n",
    "\n",
    "print(\"*Test the classifier\")\n",
    "print(\"   \")\n",
    "for snr in snrs:\n",
    "    y_pred[snr] = grid_search_cv.predict(X_test_std[snr])\n",
    "    accuracy[snr] = metrics.accuracy_score(y_test[snr], y_pred[snr])\n",
    "    print(\"k-Nearest Neighbor's Accuracy on %d dB SNR samples = \"%(snr), accuracy[snr])   \n",
    "    \n",
    "accuracy = collections.OrderedDict(sorted(accuracy.items()))  #sort by ascending SNR values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test the classifier\n",
      " \n",
      "k-Nearest Neighbor's Accuracy on -20 dB SNR samples =  0.12175\n",
      "k-Nearest Neighbor's Accuracy on -18 dB SNR samples =  0.11875\n",
      "k-Nearest Neighbor's Accuracy on -16 dB SNR samples =  0.1285\n",
      "k-Nearest Neighbor's Accuracy on -14 dB SNR samples =  0.1255\n",
      "k-Nearest Neighbor's Accuracy on -12 dB SNR samples =  0.13875\n",
      "k-Nearest Neighbor's Accuracy on -10 dB SNR samples =  0.154\n",
      "k-Nearest Neighbor's Accuracy on -8 dB SNR samples =  0.21225\n",
      "k-Nearest Neighbor's Accuracy on -6 dB SNR samples =  0.2885\n",
      "k-Nearest Neighbor's Accuracy on -4 dB SNR samples =  0.344\n",
      "k-Nearest Neighbor's Accuracy on -2 dB SNR samples =  0.36025\n",
      "k-Nearest Neighbor's Accuracy on 0 dB SNR samples =  0.453\n",
      "k-Nearest Neighbor's Accuracy on 2 dB SNR samples =  0.5775\n",
      "k-Nearest Neighbor's Accuracy on 4 dB SNR samples =  0.63825\n",
      "k-Nearest Neighbor's Accuracy on 6 dB SNR samples =  0.644\n",
      "k-Nearest Neighbor's Accuracy on 8 dB SNR samples =  0.639\n",
      "k-Nearest Neighbor's Accuracy on 10 dB SNR samples =  0.651\n",
      "k-Nearest Neighbor's Accuracy on 12 dB SNR samples =  0.643\n",
      "k-Nearest Neighbor's Accuracy on 14 dB SNR samples =  0.648\n",
      "k-Nearest Neighbor's Accuracy on 16 dB SNR samples =  0.647\n",
      "k-Nearest Neighbor's Accuracy on 18 dB SNR samples =  0.65125\n"
     ]
    }
   ],
   "source": [
    "#Test the classifier\n",
    "\n",
    "import collections\n",
    "\n",
    "y_pred = defaultdict(list)\n",
    "accuracy = defaultdict(list)\n",
    "\n",
    "print(\"Test the classifier\")\n",
    "print(\" \")\n",
    "for snr in snrs:\n",
    "    y_pred[snr] = grid_search_cv.predict(X_32test_std[snr])\n",
    "    accuracy[snr] = metrics.accuracy_score(y_32_test[snr], y_pred[snr])\n",
    "    print(\"k-Nearest Neighbor's Accuracy on %d dB SNR samples = \"%(snr), accuracy[snr])   \n",
    "    \n",
    "accuracy = collections.OrderedDict(sorted(accuracy.items()))  #sort by ascending SNR values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##  Visualize classifier performance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nmJal1QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2c6401a05f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.style.use('classic')\n",
    "\n",
    "fig = plt.figure(figsize=(8, 4), dpi=100)\n",
    "x = snrs\n",
    "y = list(accuracy.values())\n",
    "plt.plot(x, y, marker=\"o\", linewidth=2.0, linestyle='dashed', color='royalblue')\n",
    "plt.axis([-20, 20, 0, 1])\n",
    "plt.xticks(np.arange(min(x), max(x)+1, 2.0))\n",
    "plt.yticks(np.arange(0, 1, 0.10))\n",
    "\n",
    "ttl = plt.title('SNR vs Accuracy', fontsize=16)\n",
    "ttl.set_weight('bold')\n",
    "plt.xlabel('SNR (dB)', fontsize=14)\n",
    "plt.ylabel('Test accuracy', fontsize=14)\n",
    "plt.grid()\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion Matrix Without Normalization\n",
      "       8PSK  BPSK  CPFSK  GFSK  PAM4  QAM16  QAM64  QPSK\n",
      "8PSK    225     1      6    13     1     80     64   156\n",
      "BPSK      1   490      0     0    31      4      8     7\n",
      "CPFSK    36     1    476    66     3     11     11    41\n",
      "GFSK     35     3     14   408     1     15     24    27\n",
      "PAM4      1     4      0     0   462     11      6     0\n",
      "QAM16    29     0      0     1     0    138    146    24\n",
      "QAM64    32     0      0     0     2    183    191    30\n",
      "QPSK    141     1      4    12     0     58     50   215\n"
     ]
    }
   ],
   "source": [
    "# Confusion Matrix\n",
    "\n",
    "from sklearn.metrics import confusion_matrix\n",
    "import pandas as pd\n",
    "\n",
    "classes = ['8PSK', 'BPSK', 'CPFSK', 'GFSK', 'PAM4', 'QAM16', 'QAM64', 'QPSK']\n",
    "y_predicted = grid_search_cv.predict(X_32test_std[18])\n",
    "conf_matrix = confusion_matrix(y_predicted, y_32_test[18]) \n",
    "\n",
    "df = pd.DataFrame(data = conf_matrix, columns = classes, index = classes) \n",
    "print(\"Confusion Matrix Without Normalization\")\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion Matrix\n",
      "       8PSK  BPSK  CPFSK  GFSK  PAM4  QAM16  QAM64  QPSK\n",
      "8PSK   0.41  0.00   0.01  0.02  0.00   0.15   0.12  0.29\n",
      "BPSK   0.00  0.91   0.00  0.00  0.06   0.01   0.01  0.01\n",
      "CPFSK  0.06  0.00   0.74  0.10  0.00   0.02   0.02  0.06\n",
      "GFSK   0.07  0.01   0.03  0.77  0.00   0.03   0.05  0.05\n",
      "PAM4   0.00  0.01   0.00  0.00  0.95   0.02   0.01  0.00\n",
      "QAM16  0.09  0.00   0.00  0.00  0.00   0.41   0.43  0.07\n",
      "QAM64  0.07  0.00   0.00  0.00  0.00   0.42   0.44  0.07\n",
      "QPSK   0.29  0.00   0.01  0.02  0.00   0.12   0.10  0.45\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2665e46cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Normalize the matrix\n",
    "\n",
    "conf_matrix = conf_matrix.astype('float') / conf_matrix.sum(axis=1)[:, np.newaxis]\n",
    "conf_matrix = conf_matrix.round(decimals = 2)\n",
    "\n",
    "df = pd.DataFrame(data = conf_matrix, columns = classes, index = classes) \n",
    "print(\"Confusion Matrix\")\n",
    "print(df)\n",
    "\n",
    "fig1 = plt.figure(figsize=(8, 4), dpi=100)\n",
    "plt.imshow(conf_matrix, interpolation = 'nearest', cmap = plt.cm.Purples)\n",
    "ticks = np.arange(len(classes))\n",
    "plt.title(\"Confusion Matrix\")\n",
    "plt.xticks(ticks, classes, rotation=45)\n",
    "plt.yticks(ticks, classes)\n",
    "\n",
    "plt.ylabel('True class')\n",
    "plt.xlabel('Predicted class')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.colorbar()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['knn3.1.pkl']"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.externals import joblib\n",
    "\n",
    "joblib.dump(grid_search_cv, \"knn3.1.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pickle\n",
    "from sklearn.externals import joblib\n",
    "grid_search_cv = joblib.load(\"knn3.1.pkl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
